package clam.apps.adu.metier;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class ParserJsonJavaManager
{
	public static final String	BASE_URL									= "http://ilama.fr/web/anecdote/";
	// findAllStorys
	public static final String	URL_FIND_ALL_STORYS							= ParserJsonJavaManager.BASE_URL
																					+ "findAllStorys";
	// findStorysByTheme/{theme}/{etat}
	public static final String	URL_FIND_STORYS_BY_THEME					= ParserJsonJavaManager.BASE_URL
																					+ "findStorysByTheme/";
	// /findStorysByEtat/{libelle}
	public static final String	URL_FIND_STORYS_BY_ETAT						= ParserJsonJavaManager.BASE_URL
																					+ "findStorysByEtat/";
	// findStorysBySite/{site}/{etat}
	public static final String	URL_FIND_STORYS_BY_SITE						= ParserJsonJavaManager.BASE_URL
																					+ "findStorysBySite/";
	// findStorysByEtablissement/{etablissement}/{etat}
	public static final String	URL_FIND_STORYS_BY_ETABLISSEMENT			= ParserJsonJavaManager.BASE_URL
																					+ "findStorysByEtablissement/";
	// findStorysByDepartement/{departement}/{etat}
	public static final String	URL_FIND_STORYS_BY_DEPARTEMENT				= ParserJsonJavaManager.BASE_URL
																					+ "findStorysByDepartement/";
	// findStory/{id}
	public static final String	URL_FIND_STORYS_BY_LOGIN					= ParserJsonJavaManager.BASE_URL
																					+ "findStorysByLogin/";
	// findStory/{id}
	public static final String	URL_FIND_STORY								= ParserJsonJavaManager.BASE_URL
																					+ "findStory/";
	// findEtat/{libelle}
	public static final String	URL_FIND_ETAT								= ParserJsonJavaManager.BASE_URL
																					+ "findEtat/";
	// findTheme/{libelle}
	public static final String	URL_FIND_THEME								= ParserJsonJavaManager.BASE_URL
																					+ "findTheme/";
	// findEtablissement/{libelle}
	public static final String	URL_FIND_ETABLISSEMENT						= ParserJsonJavaManager.BASE_URL
																					+ "findEtablissement/";
	// findDepartement/{libelle}
	public static final String	URL_FIND_DEPARTEMENT						= ParserJsonJavaManager.BASE_URL
																					+ "findDepartement/";
	// findCommentairesByStory/{id}
	public static final String	URL_FIND_COMMENTAIRES_FOR_STORY				= ParserJsonJavaManager.BASE_URL
																					+ "findCommentairesByStory/";
	// findAllThemes
	public static final String	URL_FIND_ALL_THEMES							= ParserJsonJavaManager.BASE_URL
																					+ "findAllThemes";
	// findAllEtablissements
	public static final String	URL_FIND_ALL_ETABLISSEMENTS					= ParserJsonJavaManager.BASE_URL
																					+ "findAllEtablissements";
	// findAllDepartementsByEtablissement/{departement}
	public static final String	URL_FIND_ALL_DEPARTEMENTS_BY_ETABLISSEMENT	= ParserJsonJavaManager.BASE_URL
																					+ "findAllDepartementsByEtablissement/";
	public static final String	URL_VOTE_PLUS_STORY							= ParserJsonJavaManager.BASE_URL
																					+ "votePlusStory/";
	public static final String	URL_VOTE_MOINS_STORY						= ParserJsonJavaManager.BASE_URL
																					+ "voteMoinsStory/";
	public static final String	URL_VOTE_PLUS_COMMENTAIRE					= ParserJsonJavaManager.BASE_URL
																					+ "votePlusCommentaire/";
	public static final String	URL_VOTE_MOINS_COMMENTAIRE					= ParserJsonJavaManager.BASE_URL
																					+ "voteMoinsCommentaire/";
	public static final String	URL_AJOUTER_STORY							= ParserJsonJavaManager.BASE_URL
																					+ "ajouterStory/";
	public static final String	URL_AJOUTER_IMAGE							= ParserJsonJavaManager.BASE_URL
																					+ "";
	
	/**
	 * Fonction permettant de se connecter a une page web
	 * 
	 * @param url
	 *            l'url de la page web
	 * @return
	 */
	private String connection(String url)
	{
		HttpClient httpclient = new DefaultHttpClient();
		
		HttpResponse response;
		try
		{
			Log.i("URL AVANT", url);
			url = url.replaceAll(" ", "%20");
			Log.i("URL APRES", url);
			HttpPost httppost = new HttpPost(url); // On
													// se
													// connecte
			response = httpclient.execute(httppost); // On effectue la requete
			return EntityUtils.toString(response.getEntity()); // On récupére le
																// JSON envoyé
		}
		catch (ClientProtocolException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return ""; // Si la connection n'a pas pu se faire en renvoi un chaine
					// vide.
	}
	
	/**
	 * On veut récupérer plusieur liste
	 */
	public ArrayList<Story> findStorysList(String url)
	{
		ArrayList<Story> storys = new ArrayList<Story>(); // La liste de storys
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Etat", new Etat());
		objectSupplementaire.put("Departement", new Departement());
		objectSupplementaire.put("Etablissement", new Etablissement());
		objectSupplementaire.put("Theme", new Theme());
		objectSupplementaire.put("Site", new Site());
		
		try
		{
			JSONArray jsonArray = new JSONArray(this.connection(url)); // On
																		// récupére
																		// le
																		// JSON
																		// et
																		// on
																		// le
																		// transforme
																		// en
																		// array
			
			for (int i = 0; i < jsonArray.length(); i++) // Pour chaque objet
															// présent dans
															// l'array
			{
				Story story = new Story(); // On créer une nouvelle Story qui va
											// contenir la story actuelle
				
				try
				{
					JSONObject jsonObject = new JSONObject(jsonArray.get(i)
							.toString()); // On récupére l'objet à partir du
											// JSON
					
					ClassManager cm = new ClassManager(story); // On créer un
																// ClassMAnager
																// pour
																// connaitre les
																// attribu de la
																// class
					HashMap<String, String> fields = cm.fieldsTagName(); // Un
																			// table
																			// de
																			// clefs,
																			// valeur
																			// contenu
																			// les
																			// champs
																			// de
																			// la
																			// classe
					
					for (Entry<String, String> entry : fields.entrySet()) // Pour
																			// chaque
																			// champs
					{
						String field = entry.getKey();
						String value = entry.getValue();
						
						try
						{
							// On regarde si le chmaps est un objet
							if (objectSupplementaire.containsKey(field
									.substring(0, 1).toUpperCase()
									+ field.substring(1).toLowerCase()))
								// Si c'est le cas on recommence à parser mais
								// avec le nouvelle JSONObject
								this.parser(
										new JSONObject(jsonObject
												.getString(field)), cm.get(
												field, false),
										objectSupplementaire);
							else if (field.contains("id")
									|| field.contains("nb")) // Si le champs est
																// un integer
								cm.set(field, jsonObject.getInt(value)); // on
																			// utilise
																			// getInt
							else if (field.contains("date")) // si le champs est
																// une date, il
																// faut récupéré
																// le timestamp
							{
								JSONObject joDate = new JSONObject(
										jsonObject.getString(value));
								Date d = new Date(
										joDate.getLong("timestamp") * 1000L);
								cm.set(field, d);
							}
							else
								// Sinon c'est un string
								cm.set(field, jsonObject.getString(value));
						}
						catch (JSONException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}
				catch (JSONException e)
				{
					e.printStackTrace();
				}
				
				storys.add(story); // On ajoute la story à notre liste
			}
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return storys; // et on la renvoie
	}
	
	public Story findStoryById(int id)
	{
		Story story = new Story();
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Etat", new Etat());
		objectSupplementaire.put("Departement", new Departement());
		objectSupplementaire.put("Etablissement", new Etablissement());
		objectSupplementaire.put("Theme", new Theme());
		objectSupplementaire.put("Site", new Site());
		
		try
		{
			this.parser(
					new JSONObject(this
							.connection(ParserJsonJavaManager.URL_FIND_STORY
									+ id)), story, objectSupplementaire);
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return story;
	}
	
	public Etat findEtatByLibelle(String libelle)
	{
		Etat etat = new Etat();
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		
		try
		{
			this.parser(
					new JSONObject(this
							.connection(ParserJsonJavaManager.URL_FIND_ETAT
									+ libelle)), etat, objectSupplementaire);
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return etat;
	}
	
	public Theme findThemeByLibelle(String libelle)
	{
		Theme theme = new Theme();
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		
		try
		{
			this.parser(
					new JSONObject(this
							.connection(ParserJsonJavaManager.URL_FIND_THEME
									+ libelle)), theme, objectSupplementaire);
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return theme;
	}
	
	public Etablissement findEtablissementByLibelle(String libelle)
	{
		Etablissement etablissement = new Etablissement();
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Site", new Site());
		
		try
		{
			this.parser(
					new JSONObject(
							this.connection(ParserJsonJavaManager.URL_FIND_ETABLISSEMENT
									+ libelle)), etablissement,
					objectSupplementaire);
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return etablissement;
	}
	
	public Departement findDepartementByLibelle(String libelle)
	{
		Departement departement = new Departement();
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Etablissement", new Etablissement());
		
		try
		{
			this.parser(
					new JSONObject(
							this.connection(ParserJsonJavaManager.URL_FIND_DEPARTEMENT
									+ libelle)), departement,
					objectSupplementaire);
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return departement;
	}
	
	public ArrayList<Commentaire> findCommentairesByStory(int idStory)
	{
		ArrayList<Commentaire> commentaires = new ArrayList<Commentaire>(); // La
																			// liste
																			// de
																			// storys
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Site", new Site());
		
		try
		{
			JSONArray jsonArray = new JSONArray(
					this.connection(ParserJsonJavaManager.URL_FIND_COMMENTAIRES_FOR_STORY
							+ idStory)); // On
			// récupére le JSON et on le transforme en array
			
			for (int i = 0; i < jsonArray.length(); i++) // Pour chaque objet
			// présent dans
			// l'array
			{
				Commentaire commentaire = new Commentaire(); // On créer une
																// nouvelle
																// Story qui va
				// contenir la story actuelle
				
				try
				{
					JSONObject jsonObject = new JSONObject(jsonArray.get(i)
							.toString()); // On récupére l'objet à partir du
					// JSON
					
					ClassManager cm = new ClassManager(commentaire); // On créer
																		// un
					// ClassMAnager
					// pour
					// connaitre les
					// attribu de la
					// class
					HashMap<String, String> fields = cm.fieldsTagName(); // Un
					// table
					// de
					// clefs,
					// valeur
					// contenu
					// les
					// champs
					// de
					// la
					// classe
					
					for (Entry<String, String> entry : fields.entrySet()) // Pour
					// chaque
					// champs
					{
						String field = entry.getKey();
						String value = entry.getValue();
						
						try
						{
							// On regarde si le chmaps est un objet
							if (objectSupplementaire.containsKey(field
									.substring(0, 1).toUpperCase()
									+ field.substring(1).toLowerCase()))
								// Si c'est le cas on recommence à parser mais
								// avec le nouvelle JSONObject
								this.parser(
										new JSONObject(jsonObject
												.getString(field)), cm.get(
												field, false),
										objectSupplementaire);
							else if (field.contains("id")
									|| field.contains("nb")) // Si le champs est
								// un integer
								cm.set(field, jsonObject.getInt(value)); // pon
							// utilise
							// getInt
							else if (field.contains("date")) // si le champs est
							// une date, il
							// faut récupéré
							// le timestamp
							{
								JSONObject joDate = new JSONObject(
										jsonObject.getString(value));
								cm.set(field, joDate.getString("timestamp"));
							}
							else
								// Sinon c'est un string
								cm.set(field, jsonObject.getString(value));
						}
						catch (JSONException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}
				catch (JSONException e)
				{
					e.printStackTrace();
				}
				
				commentaires.add(commentaire); // On ajoute la story à notre
												// liste
			}
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return commentaires; // et on la renvoie
	}
	
	public ArrayList<Theme> findAllThemes()
	{
		ArrayList<Theme> themes = new ArrayList<Theme>(); // La
															// liste
															// de
															// storys
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		
		try
		{
			JSONArray jsonArray = new JSONArray(
					this.connection(ParserJsonJavaManager.URL_FIND_ALL_THEMES)); // On
			// récupére le JSON et on le transforme en array
			
			for (int i = 0; i < jsonArray.length(); i++) // Pour chaque objet
			// présent dans
			// l'array
			{
				Theme theme = new Theme(); // On créer une
											// nouvelle
											// Story qui va
				// contenir la story actuelle
				
				try
				{
					JSONObject jsonObject = new JSONObject(jsonArray.get(i)
							.toString()); // On récupére l'objet à partir du
					// JSON
					
					ClassManager cm = new ClassManager(theme); // On créer
																// un
					// ClassMAnager
					// pour
					// connaitre les
					// attribu de la
					// class
					HashMap<String, String> fields = cm.fieldsTagName(); // Un
					// table
					// de
					// clefs,
					// valeur
					// contenu
					// les
					// champs
					// de
					// la
					// classe
					
					for (Entry<String, String> entry : fields.entrySet()) // Pour
					// chaque
					// champs
					{
						String field = entry.getKey();
						String value = entry.getValue();
						
						try
						{
							// On regarde si le chmaps est un objet
							if (objectSupplementaire.containsKey(field
									.substring(0, 1).toUpperCase()
									+ field.substring(1).toLowerCase()))
								// Si c'est le cas on recommence à parser mais
								// avec le nouvelle JSONObject
								this.parser(
										new JSONObject(jsonObject
												.getString(field)), cm.get(
												field, false),
										objectSupplementaire);
							else if (field.contains("id")
									|| field.contains("nb")) // Si le champs est
								// un integer
								cm.set(field, jsonObject.getInt(value)); // pon
							// utilise
							// getInt
							else if (field.contains("date")) // si le champs est
							// une date, il
							// faut récupéré
							// le timestamp
							{
								JSONObject joDate = new JSONObject(
										jsonObject.getString(value));
								cm.set(field, joDate.getString("timestamp"));
							}
							else
								// Sinon c'est un string
								cm.set(field, jsonObject.getString(value));
						}
						catch (JSONException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}
				catch (JSONException e)
				{
					e.printStackTrace();
				}
				
				themes.add(theme); // On ajoute la story à notre
									// liste
			}
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return themes; // et on la renvoie
	}
	
	public ArrayList<Etablissement> findAllEtablissement()
	{
		ArrayList<Etablissement> etablissements = new ArrayList<Etablissement>(); // La
		// liste
		// de
		// storys
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Site", new Site());
		
		try
		{
			JSONArray jsonArray = new JSONArray(
					this.connection(ParserJsonJavaManager.URL_FIND_ALL_ETABLISSEMENTS)); // On
			// récupére le JSON et on le transforme en array
			
			for (int i = 0; i < jsonArray.length(); i++) // Pour chaque objet
			// présent dans
			// l'array
			{
				Etablissement etablissement = new Etablissement(); // On créer
																	// une
				// nouvelle
				// Story qui va
				// contenir la story actuelle
				
				try
				{
					JSONObject jsonObject = new JSONObject(jsonArray.get(i)
							.toString()); // On récupére l'objet à partir du
					// JSON
					
					ClassManager cm = new ClassManager(etablissement); // On
																		// créer
					// un
					// ClassMAnager
					// pour
					// connaitre les
					// attribu de la
					// class
					HashMap<String, String> fields = cm.fieldsTagName(); // Un
					// table
					// de
					// clefs,
					// valeur
					// contenu
					// les
					// champs
					// de
					// la
					// classe
					
					for (Entry<String, String> entry : fields.entrySet()) // Pour
					// chaque
					// champs
					{
						String field = entry.getKey();
						String value = entry.getValue();
						
						try
						{
							// On regarde si le chmaps est un objet
							if (objectSupplementaire.containsKey(field
									.substring(0, 1).toUpperCase()
									+ field.substring(1).toLowerCase()))
								// Si c'est le cas on recommence à parser mais
								// avec le nouvelle JSONObject
								this.parser(
										new JSONObject(jsonObject
												.getString(field)), cm.get(
												field, false),
										objectSupplementaire);
							else if (field.contains("id")
									|| field.contains("nb")) // Si le champs est
								// un integer
								cm.set(field, jsonObject.getInt(value)); // pon
							// utilise
							// getInt
							else if (field.contains("date")) // si le champs est
							// une date, il
							// faut récupéré
							// le timestamp
							{
								JSONObject joDate = new JSONObject(
										jsonObject.getString(value));
								cm.set(field, joDate.getString("timestamp"));
							}
							else
								// Sinon c'est un string
								cm.set(field, jsonObject.getString(value));
						}
						catch (JSONException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}
				catch (JSONException e)
				{
					e.printStackTrace();
				}
				
				etablissements.add(etablissement); // On ajoute la story à notre
				// liste
			}
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return etablissements; // et on la renvoie
	}
	
	public ArrayList<Departement> findAllDepartementByEtablissement(
			Etablissement etablissement)
	{
		ArrayList<Departement> departements = new ArrayList<Departement>(); // La
		// liste
		// de
		// storys
		
		// Un table de clef, valeur avec comme clef le nom des classes présentes
		// dans l'objet Story et les valeur un instance de la class.
		HashMap<String, Object> objectSupplementaire = new HashMap<String, Object>();
		objectSupplementaire.put("Etablissement", new Etablissement());
		objectSupplementaire.put("Site", new Site());
		
		try
		{
			JSONArray jsonArray = new JSONArray(
					this.connection(ParserJsonJavaManager.URL_FIND_ALL_DEPARTEMENTS_BY_ETABLISSEMENT
							+ etablissement.getId())); // On
			// récupére le JSON et on le transforme en array
			
			for (int i = 0; i < jsonArray.length(); i++) // Pour chaque objet
			// présent dans
			// l'array
			{
				Departement departement = new Departement(); // On créer
																// une
				// nouvelle
				// Story qui va
				// contenir la story actuelle
				
				try
				{
					JSONObject jsonObject = new JSONObject(jsonArray.get(i)
							.toString()); // On récupére l'objet à partir du
					// JSON
					
					ClassManager cm = new ClassManager(departement); // On
																		// créer
					// un
					// ClassMAnager
					// pour
					// connaitre les
					// attribu de la
					// class
					HashMap<String, String> fields = cm.fieldsTagName(); // Une
					// table
					// de
					// clefs,
					// valeur
					// contenu
					// les
					// champs
					// de
					// la
					// classe
					
					for (Entry<String, String> entry : fields.entrySet()) // Pour
					// chaque
					// champs
					{
						String field = entry.getKey();
						String value = entry.getValue();
						
						try
						{
							// On regarde si le chmaps est un objet
							if (objectSupplementaire.containsKey(field
									.substring(0, 1).toUpperCase()
									+ field.substring(1).toLowerCase()))
								// Si c'est le cas on recommence à parser mais
								// avec le nouvelle JSONObject
								this.parser(
										new JSONObject(jsonObject
												.getString(field)), cm.get(
												field, false),
										objectSupplementaire);
							else if (field.contains("id")
									|| field.contains("nb")) // Si le champs est
								// un integer
								cm.set(field, jsonObject.getInt(value)); // pon
							// utilise
							// getInt
							else if (field.contains("date")) // si le champs est
							// une date, il
							// faut récupéré
							// le timestamp
							{
								JSONObject joDate = new JSONObject(
										jsonObject.getString(value));
								cm.set(field, joDate.getString("timestamp"));
							}
							else
								// Sinon c'est un string
								cm.set(field, jsonObject.getString(value));
						}
						catch (JSONException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}
				catch (JSONException e)
				{
					e.printStackTrace();
				}
				
				departements.add(departement); // On ajoute la story à notre
				// liste
			}
		}
		catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return departements; // et on la renvoie
	}
	
	public void parser(JSONObject jsonObject, Object object,
			HashMap<String, Object> objectSupplementaire)
	{
		// Lisez les commentaire de findAllStorys
		ClassManager cm = new ClassManager(object);
		HashMap<String, String> fields = cm.fieldsTagName();
		
		for (Entry<String, String> entry : fields.entrySet())
		{
			String field = entry.getKey();
			String value = entry.getValue();
			try
			{
				if (objectSupplementaire.containsKey(field.substring(0, 1)
						.toUpperCase() + field.substring(1).toLowerCase()))
					this.parser(new JSONObject(jsonObject.getString(field)),
							cm.get(field, false), objectSupplementaire);
				else if (field.contains("id") || field.contains("nb"))
					cm.set(field, jsonObject.getInt(value));
				else if (field.contains("date"))
				{
					JSONObject joDate = new JSONObject(
							jsonObject.getString(value));
					cm.set(field, joDate.getString("timestamp"));
				}
				else
				{
					String v = jsonObject.getString(value);
					if (jsonObject.getString(value) != null)
						cm.set(field, v);
				}
				
			}
			catch (JSONException e)
			{
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	// public void parser(JSONArray jsonArray, Object object,
	// ArrayList<Object> list, HashMap<String, Object> objectSupplementaire)
	// {
	// for (int i = 0; i < jsonArray.length(); i++)
	// {
	// try
	// {
	// JSONObject s = new JSONObject(jsonArray.get(i).toString());
	//
	// this.parser(s, object, objectSupplementaire);
	// }
	// catch (JSONException e)
	// {
	// e.printStackTrace();
	// }
	// Object o = new Object();
	// System.out.println(o);
	// list.add(object);
	// }
	// }
}